// 数组数据转树形  递归数据多的时候性能非常不好
export const getTree = (list, pid) => {
  const arr = []
  list.forEach((item) => {
    if (item.pid === pid) {
      item.children = getTree(list, item.id)
      arr.push(item)
    }
  })
  console.log(list)
  return arr
}
// 数组转树形
// 2次循环搞定 整体实现思路
// 1建立map映射表并添加children属性  2 根据pid找父亲 找到添加到父亲的children属性里面
// 找不到说明是一级节点 直接添加到准备好的空数组中
export const getdataTree = (list, pid) => {
  const obj = {}
  // 第一次循环建立map映射表并添加children属性
  list.forEach((item) => {
    obj[item.id] = item
  })
  const arr = []
  // 第二次 根据pid找父亲 pid为空是一级节点 直接添加到数组中
  // 否则追加进对应的父节点的children属性中
  list.forEach(item => {
    if (obj[item.pid]) {
      if (obj[item.pid].children) { obj[item.pid].children.push(item) } else { obj[item.pid].children = [item] }

      // else if 处理脏数据
    } else if (item.pid === pid) {
      arr.push(item)
    }
  })
  return arr
}

